<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 官方提供了内置的工厂模式
    // new关键字

    // new执行函数的原理
        // 1. 创建一个新对象（原料）
        // 2. 改变了函数的this指向，指向这个新对象（为了方便加工）
        // 3. ......
        // 4. 执行代码
        // 5. 检测原函数是否主动返回对象，如果没有，返回这个新对象（出厂）
    
    // 类：构造函数
    function createObj(n, a){
        this.name = n;
        this.age = a;
        this.show = function(){
            console.log(this.name)
        }
    }

    const o1 = new createObj("张三", 18);
    const o2 = new createObj("李四", 20);

    console.log(o1);
    console.log(o2);

    o1.show();
    o2.show();

    console.log(o2 === o1);     // false
    console.log(o2.show === o1.show);   // false，应该为true，等原型链


</script>
</html>